High-level graphical notation diagrams show a view of low-level processes at an abstract, easy-to-read level. Numerous high-level graphical notation diagram specifications have been created to facilitate the design and implementation of low-level processes. For example, graphical notation diagrams have been developed to model business workflows, biological and genetic information, mathematical algorithms, database designs, language analysis, and a number of other subjects. Graphical notation diagrams generally consist of simple visual elements, such as shapes, arrows, lines, and other graphical objects, that represent specific functions or features in a model. For example, a biological graphical notation diagram may be used to visually illustrate the biochemical reaction of a protein molecule in a biological network. In such a diagram, visual objects (e.g., rectangles) represent the protein molecule in various stages during the reaction process. In addition, arrows illustrate the flow of the reactions as they occur to the molecule.
A specific example of a high-level graphical notation diagram specification is the Business Process Modeling Notation (BPMN) specification. The BPMN specification provides techniques to graphically describe business processes in a visual way. BPMN is used to create high-level abstracted views of Business Process Execution Language (BPEL) processes. A BPEL process defines at a low-level the flow of information and services provided in a business transaction.
The BPEL specification allows users to define XML-based grammars that integrate web services from multiple sources. By defining a BPEL process, users may achieve web services interoperability without modifying the services themselves. For example, a BPEL process may be defined to integrate a multi-party transaction between an online store, a credit card company, and a shipping company. In this example, a user browses the online store, selects an item for purchase, and provides credit card information to the online store. When the user submits the credit card information, the BPEL process coordinates the flow of information from the online store to the credit card company. The credit card company verifies the user's identity, that the user has sufficient funds, etc. and returns a result. Again, the BPEL process ensures that the result is returned to the online store. If the transaction is approved, the BPEL process then coordinates the online store's interaction with the shipping company.
The BPEL process coordinates the interaction between parties using lower-level code. However, often the people designing the flow of a business process are not sophisticated programmers. For them, the low-level code is difficult to read and debug. Accordingly, BPMN was designed to visually abstract the low-level BPEL processes. BPMN provides a high-level graphical notation that visually illustrates low-level BPEL processes as workflow diagrams. The graphical nature of BPMN makes it easier for users and process developers to understand the flow of information and services provided in a business process.
Although BPMN and other graphical notation techniques improve methods for defining the interaction of entities in a process, there are no adequate tools or techniques for debugging at a high-level the underlying low-level code and its interaction with the high-level diagram. For example, existing debugging interfaces allow users to debug code at a fairly abstract level. However, they do not know how to interpret the graphical objects and visual elements found in current high-level graphical diagram notation techniques. Basically, existing debugging interfaces cannot show at the diagram level its interaction with the underlying low-level code.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.